package modelo;

import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;



@Entity
@Table(name="lugar",schema="public")
@PrimaryKeyJoinColumn(name="cod_lugar")
public class Lugar implements Serializable {
	private static final long serialVersionUID = 1L;
	
	@Id
	@Column(name="cod_lugar")
	private String codLugar;
	@Column(name="nombre_lugar")
	private String nombre;
	@Column(name="direccion_lugar")
	private String direccion;
	@Column(name = "capacidad_lugar")
	private String capacidad;
	
	@OneToOne(cascade= CascadeType.ALL)
	@JoinColumn(name="cod_ciudad")
	private Ciudad ciudad;
	
	
	@ManyToMany(cascade = {CascadeType.ALL},mappedBy="lugares")
	// @JoinTable(name="detallelugar", joinColumns={@JoinColumn(name="cod_lugar")}, inverseJoinColumns={@JoinColumn(name="cod_especificcion")})
	 private Set<EspecificacionLugar> especificaciones =new HashSet <EspecificacionLugar>();
	//creo que tambien prodia ser asi private EspecificacionLugar especificaciones;
	
	public Lugar() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Lugar(String codLugar, String nombre, String direccion,
			String capacidad, Ciudad ciudad) {
		super();
		this.codLugar = codLugar;
		this.nombre = nombre;
		this.direccion = direccion;
		this.capacidad = capacidad;
		this.ciudad = ciudad;
	}

	public String getCodLugar() {
		return codLugar;
	}

	public void setCodLugar(String codLugar) {
		this.codLugar = codLugar;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getDireccion() {
		return direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public String getCapacidad() {
		return capacidad;
	}

	public void setCapacidad(String capacidad) {
		this.capacidad = capacidad;
	}

	public Ciudad getCiudad() {
		return ciudad;
	}

	public void setCiudad(Ciudad ciudad) {
		this.ciudad = ciudad;
	}
	
	

}
